Skip to content

Usage is a platform surface, not an installed app - #264

Merged
czpython merged 1 commit into
mainfrom
usage-is-a-platform-surface
Aug 17, 2026
Merged

Usage is a platform surface, not an installed app#264
czpython merged 1 commit into
mainfrom
usage-is-a-platform-surface

Conversation

@czpython

Copy link
Copy Markdown
Owner

The shell reads an extension's builtin flag as "this is an app": every non-builtin roster entry is registered into the UI registry, which gives it a switcher entry and mounts generic pages at /<name>.

Usage never set the flag, so it showed up as an app in the dropdown, and the generic home page it got at /usage shadowed the shell's own usage route — clicking the quota pill landed on an empty subject board instead of the usage panel.

Usage now declares builtin = True, alongside core.

The shell's own routes also move ahead of the extension routes in the switch, so a platform path stays with the platform even if an extension is named after one.

🤖 Generated with Claude Code

The shell reads an extension's `builtin` flag as "this is an app": the
roster's non-builtin entries get registered into the UI registry, which
puts them in the switcher and mounts generic pages at /<name>. Usage
never set the flag, so it drew a dropdown entry, and its generic home
page shadowed the shell's own /usage route — the pill in the appbar
landed on an empty subject board instead of the usage panel.

The shell's routes now come before the extension routes in the switch,
so a platform path can't be taken by an extension named after it.
@czpython
czpython enabled auto-merge (squash) August 17, 2026 02:03
@czpython
czpython merged commit f91bc83 into main Aug 17, 2026
2 checks passed
@czpython
czpython deleted the usage-is-a-platform-surface branch August 17, 2026 02:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant